Arduino for Solecon
code: ino
// ピンの設定
const int switchPin = 2; //リードスイッチ接続ピン
const int buttonPin = 5; //タクトスイッチ用ピン
const int solPin = 4; //ソレノイドピン
const int ledPin = 12; //LED接続ピン
// 初期値設定
int globalStatus = 0; //状態 1.扉開き 2.扉閉め
byte val = 0;
LiquidCrystal lcd(RS, E, DB4, DB5, DB6, DB7);
// メッセージ表示
//void setMessage(char s) {
// lcd.begin(16,2);
// lcd.setCursor(0,0);
// lcd.print(s);
// Serial.println(s);
//}
void setup() {
analogWrite(3,10);
Serial.begin(115200);
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(solPin, OUTPUT);
pinMode(buttonPin, OUTPUT);
// LCD表示
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("TEST");
}
void loop() {
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("TEST");
// if (globalStatus == 0) {
// main();
// }
// lcd.begin(16,2);
// lcd.setCursor(0,0);
// lcd.print("PUSH BLUE BUTTON");
}
// 扉の開閉判定
bool isClosed() {
if (digitalRead(switchPin) == LOW) {
return true;
}
return false;
}
// ステータス送信
void sendStatus(int v) {
Serial.write(v);
Serial.println(v);
}
// メインの処理、エラーが起こったらはじめから
int main() {
while (1) {
// 扉ロック解除
if (digitalRead(switchPin) == HIGH) {
digitalWrite(solPin, HIGH);
// setMessage("PLZ PUT PACKAGE IN");
}
// 扉ロック(扉が閉まって5sec後)
if (isClosed()) {
delay(5000);
digitalWrite(solPin, LOW);
Serial.println("Closed Door");
sendStatus(1);
// setMessage("PUSH RED BUTTON");
} else {
// setMessage("CLOSE DOOR");
break;
}
// 終了ステータスをセット
globalStatus = 9;
break;
}
return 1;
}